Multicast technology makes it possible to send data from a single source to many recipients through a data network, without having to set up unicast communication involving one-to-one individual communication between the source and each of the recipients. To that end a source sends data, in data packet form, to a single address associated to a multicast group to which the equipment interested in being recipients of the data sending can subscribe. This address, referred to as a multicast address or also as a multicast group address, is an IP (Internet Protocol) address chosen within a range that is reserved for multicast applications. The data packets which have been sent by the source to the multicast address are then replicated in the different network routers so that they can reach the recipients that have joined the multicast group.
In wired data networks, such as networks that use ADSL or Ethernet networks, the use of multicast technology has been widespread in recent years due to Internet TV or IPTV.
The recipients which receive data in a multicast group are usually equipment connected to the data network by means of a proxy or a router. Hereinafter, the common term host will be used to refer to the recipient equipment. A host can be, for example, a computer, a set-top box (digital signal decoder) connected to a television set, a mobile phone, mobile devices, etc.
When a host wants to receive the information sent by one or several sources of a multicast group, it sends to the closest router, or to an intermediate proxy, a subscription message to request the multicast traffic so that the router transmits to it the data arriving through the data network and which has been sent by the sources of the multicast group. Likewise, when a host wishes to stop receiving data sending in the multicast group, it sends to the router or to the proxy an unsubscribe message to stop receiving them.
Today the messages exchanged between a host and the closest router to manage membership to a multicast group use the IGMP protocol (Internet Group Management Protocol) or the MLD (Multicast Listener Discovery) protocol, according to whether or not the router works with version 4 (IPv4) or version 6 (IPv6) of the IP protocol (Internet Protocol), respectively. When there is a proxy between the host and the router, the proxy also uses the IGMP/MLD protocols to exchange with the host, the closest router or other intermediate proxy, the multicast group membership messages. In these cases, the proxy can receive from different hosts requests to subscribe to or to unsubscribe from a multicast group, and it assembles them to thus reduce IGMP/MLD message traffic it sends to the router. Hereinafter, the generic term “IGMP proxy” will be used to designate a proxy that uses IGMP/MLD protocols.
In addition, routers exchange messages with one another for the purpose of defining the routing which allows efficiently routing the data from the sources to the hosts that have requested the multicast traffic. To that end, the routers use specific protocols, including the very well known PIM-SM (Protocol Independent Multicast-Sparse Mode).
In summary, the routers receive from the hosts, in the form of IGMP/MLD messages, information specifying which multicast groups they want to receive traffic from, and they communicate with other routers, for example by means of the PIM-SM protocol, for the purpose of setting up a routing which takes the traffic requested by the hosts to such hosts.
All the mentioned protocols are defined and documented by the Internet Engineering Task Force (IETF).
The latest version of the IGMP protocol version currently being used is IGMPv3, which is described in the RFC 3376 specifications published on line by the IETF (B. Cain et al., Engineering Task Force, Network Working Group, Request for Comments 3376, October 2002; currently available at Internet address http://tools.ietf.org/html/rfc3376).
With regard to the MLD protocol, the latest version of the MLD protocol is MLDv2, which is described in the RFC 3810 specifications published on line by the IETF (R. Vida et al., Engineering Task Force, Network Working Group, Request for Comments 3810, June 2004; currently available at Internet address http://tools.ietf.org/html/rfc3810).
The PIM-SM protocol used for the communication between routers is described in the RFC 4601 specifications published on line by the IETF (B. Fenner et al., Engineering Task Force, Network Working Group, Request for Comments 4601, August 2006; currently available at Internet address http://tools.ietf.org/html/rfc4601).
Multicast technology was initially implemented primarily to be applied to the many-to-many communication model, known as ASM (Any Source Multicast), in which many users communicate with one another and any of them can send data and also receive data from everyone else. A typical ASM application is multiparty calling via Internet.
Multicast technology was then implemented to be applied to the one-to-many communication model known as SSM (Source Specific Multicast), in which a single source sends data for many recipients.
In accordance with the common nomenclature in SSM technology, the transmission from the source S of the multicast group G is called channel (S,G), where S is an IP address that identifies the source that transmits the data and G is an IP address, within the range reserved for multicast groups, which identifies the multicast group.
The terms “upstream” and “downstream” are used in the following to indicate relative locations from a network device: the term “upstream” refers to a location toward the multicast source and the term “downstream” refers to a location in the opposite direction.
A problem in managing multicast traffic in the switches of the state of the art is that when an Ethernet switch connecting routers, or routers and hosts, receives an IP data packet with a multicast group IP address, the switch cannot associate the multicast group IP address with the unicast MAC addresses of the equipment connected to its ports, and therefore the switch does not know through which ports and to which equipment it should send the data packet. When the switch receives an IP data packet with a multicast group address, since it cannot know through which ports and to which equipment it should send the packet, it sends it through all its ports and to all the equipment connected to the ports. This operation involves unnecessary bandwidth consumption, given that the switch is sending data packets to equipment that does not need the packets. Furthermore, in some cases this equipment receiving unrequested packets must process them in order to decide what to do with them, which unnecessarily reduces the processing capacity of the equipment for other tasks.
To avoid this problem, a series of techniques to be used in Ethernet switches which transmit multicast traffic between routers or between routers and hosts have been developed. A technique referred to as IGMP snooping has been imposed in the section of the network where IGMP messages circulate, this technique is described below and it does allow the switch to manage SSM multicast traffic and to take into account the IP addresses of the sources of origin of the data.
The RFC 4541 specifications, edited online by the IETF (M. Christensen et al., Engineering Task Force, Network Working Group, Request for Comments 4541, May 2006; currently available at Internet address http://tools.ietf.org/html/rfc4541) describe the operation of a switch performing a function referred to as IGMP snooping so as to prevent sending all the multicast data packets through all its ports and to all the equipment connected to the ports. This IGMP snooping function consists of the switch analyzing the IP data packets containing IGMP messages and creates a table with the information of the multicast channels or groups that the switch must send through each of its ports. The switch thus sends through each of its ports only the multicast channels that the hosts connected to the port have requested. The reason that the switch must perform this snooping function is that a switch is usually a layer 2 equipment in the OSI model and therefore neither knows nor uses layer 3 protocols such as the IP protocol.
As previously explained, multicast technology is widely used currently to transmit television by Internet (IPTV).
The difference between a broadcast transmission and a multicast transmission is that a broadcast transmission is directed to all receivers or hosts, while a multicast transmission arrives only at the host group that has sent an IGMP message to receive the transmission.
In systems that use broadcast technologies, such as, for example, Digital Video Broadcasting Terrestrial (DVG-T) and Digital Video Broadcasting for Handheld Mobile Television (DVB-H), it is possible for the same television channel that transmits the same first content in different geographic areas to insert a second type of content that is different in different geographic areas. This makes it possible, for example, to insert regional information or content or to insert different advertising for some geographic areas.
In broadcast technology, one way of inserting different content in the same television channel in different geographic areas consists of carrying each signal separately to the television transmission antenna of each geographic area. In this way, the content each antenna receives for transmission is already customised, for example with regional content or localised advertising. However, this system entails an enormous allocation of bandwidth since each area must receive its own data stream. In large areas with thousands of transmission antennas, this entails considerable cost.
In current multicast technology there is no system which allows content that depends on a geographic area to be inserted in an optimised manner.